//该文件用于创建Vuex里的stroe
import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
//创建服务vue的服务员 可以向后台发送数据 或者讲信息给mutaion
const actions = {
    // jia(context,value){
    //    console.log('actions 收到了',context,value)
    //    context.commit('JIA',value)
    // },
    // jian(context,value){
    //     context.commit('JIAN',value)
    // },
    odd(context,value){
        if(context.state.num % 2){
            context.commit('ODD',value)
        }
    },
    wait(context,value){
        setTimeout(() => {
            context.commit('WAIT',value)
        }, 500);
    }
}

//主要负责加工信息的
const mutations = {
    JIA(state,value){
     console.log('mutations 收到了',state,value)
        state.num += value
    },
    JIAN(state,value){
       state.num -= value
    },
    ODD(state,value){
        state.num += value
    },
    WAIT(state,value){
        state.num += value
    }
}

//自己的状态（数据）
const state = {
    num:0,
    subj1:'vue',
    subj2:'java',
}

//像vue里的computed
const getters = {
    bigsum(state){
      return  state.num * 10
    }
}


//创建暴露store
export default new Vuex.Store({
    actions,
    mutations,
    state,
    getters,
})